home *** CD-ROM | disk | FTP | other *** search
Wrap
(*************************************************** Ant Movie Catalog importation script www.antp.be/software/moviecatalog/ [Infos] Authors=dmitry501 Title=dvdempire.com Description=Movie importation script for www.dvdempire.com Site=www.dvdempire.com Language=EN Version= Requires=3.5.0 Comments= License=This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. | GetInfo=1 [Options] ***************************************************) program From_dvdempire; var MovieName: string; MovieName2: string; // ------------------------------------------------------------------------------------------------------- function FindLine(Pattern: string; List: TStringList; StartAt: Integer): Integer; var i: Integer; begin result := -1; if StartAt < 0 then StartAt := 0; for i := StartAt to List.Count-1 do if Pos(Pattern, List.GetString(i)) <> 0 then begin result := i; Break; end; end; // ------------------------------------------------------------------------------------------------------- function GetLines(Page: TStringList; LineNr: Integer): String; var Value, Line: String; StartPos : Integer; begin Value := ''; Line := Page.GetString(LineNr); If Pos(' ',Line) > 0 Then Begin Value := StringReplace(Line, 'ò', ''); HTMLDecode(Value); HTMLRemoveTags(Value); repeat LineNr := LineNr + 1; Line := Page.GetString(LineNr); If Pos(' ',Line) > 0 Then Begin Value := Value + ',' + StringReplace(Line, 'ò', ''); HTMLDecode(Value); HTMLRemoveTags(Value); end; until Pos(' ',Line) < 1 end; result := Trim(Value); end; // ------------------------------------------------------------------------------------------------------- procedure GetInfo(Page: TStringList; ItemID: String); var Line, Value : String; LineNR, StartPos : Integer; begin // URL SetField(fieldURL,'http://www.dvdempire.com/Exec/v4_item.asp?item_id=' + ItemID); //Rating LineNr := FindLine('<b>Rating:</b>', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr+3); StartPos := Pos('(<b>',Line)+4; Value := copy(Line, StartPos, pos('</b>', Line) - StartPos); SetField(fieldRating,Value); end; // Year LineNr := FindLine('<b>Production Year:</b>', Page, 0); if LineNr > -1 then begin Line := Page.GetString(LineNr); StartPos := Pos('</b>',Line)+5; Value := Copy(Line, StartPos,4); SetField(fieldYear, Value); end; // Director LineNr := FindLine('<b>Directors:</b>', Page, 0); if LineNr > -1 then begin Value := GetLines(Page, LineNr+1); SetField(fieldDirector, Value); end; // Producer LineNr := FindLine('<b>Producers:</b>', Page, 0); if LineNr > -1 then begin Value := GetLines(Page, LineNr+1); SetField(fieldProducer, Value); end; // Actors LineNr := FindLine('<b>Actors:</b>', Page, 0); if LineNr > -1 then begin Value := GetLines(Page, LineNr+1); SetField(fieldActors, Value); end; // Description LineNr := FindLine('<b> Synopsis</b>', Page, 0); if LineNr > -1 then begin Value := Page.GetString(LineNr + 16)+Page.GetString(LineNr + 17)+Page.GetString(LineNr + 18); Value:=StringReplace(Value, '>i<', '> <'); HTMLDecode(Value); HTMLRemoveTags(Value); SetField(fieldDescription,Value); end; // Picture Line := 'http://images.dvdempire.com/gen/movies/' + ItemID + 'h.jpg'; GetPicture(Line); end; // ------------------------------------------------------------------------------------------------------- procedure AnalyzePage(Address: string); var Page: TStringList; LineNr, StartPos, EndPos, L: Integer; Line: string; ItemID, MovieAddress, MovieTitle : string; begin PickTreeClear; Page := TStringList.Create; Page.Text := GetPage(Address); LineNr := FindLine('<title>DVD Empire - Item -', Page, 0); if LineNr >-1 then begin LineNr := FindLine('item_id', Page, 0); Line := Trim(Page.GetString(LineNr)); StartPos := pos('item_id=', Line) + 8; ItemID := copy(Line, StartPos, pos('&tab=', Line) - StartPos); GetInfo(Page,ItemID); end else begin LineNr := FindLine('Matches Found<br>', Page, 0); if LineNr >-1 then begin Line := Page.GetString(LineNr); StartPos := pos('<b>', Line) + 3; L := StrToInt('0'+ Copy(Line, StartPos, pos('</b>', Line) - StartPos),1); PickTreeAdd(IntToStr(L)+' Matches found', ''); If L>0 Then begin // Find Films LineNr := FindLine('searchID=', Page, LineNr); LineNr := LineNr + 1; repeat LineNr := FindLine('searchID=', Page, LineNr); if LineNr >-1 then begin Line := Trim(Page.GetString(LineNr)); LineNr := LineNr + 1; If pos('<img src="', Line) <1 Then Begin StartPos := pos('item_id=', Line) + 8; ItemID := copy(Line, StartPos, pos('">', Line) - StartPos); MovieAddress := 'http://www.dvdempire.com/Exec/v4_item.asp?item_id=' + ItemID; StartPos := pos('">', Line) + 2; MovieTitle := copy(Line, StartPos, 500); HTMLDecode(Movietitle); HTMLRemoveTags(MovieTitle); PickTreeAdd(MovieTitle, MovieAddress); end; end; until (LineNr <1 ); end; end; Page.Free; if PickTreeExec(Address) then begin Page := TStringList.Create; Page.Text := GetPage(Address); ItemID :=copy(Address, 51, 8); GetInfo(Page,ItemID); end; end; //DisplayResults; end; // ------------------------------------------------------------------------------------------------------- // Begin program begin PickListClear; MovieName := GetField(fieldOriginalTitle); if MovieName = '' then MovieName := GetField(fieldTranslatedTitle); if Input('Import from www.dvdempire.com', 'Enter the title of the movie:', MovieName) then begin MovieName2:=MovieName; MovieName:=StringReplace(MovieName, 'Æ', Chr(39)); MovieName:=AnsiLowerCase(MovieName); MovieName:=AnsiUpFirstLetter(MovieName); if pos('The ', MovieName)=1 then MovieName:=StringReplace(MovieName, 'The ', ''); AnalyzePage('http://www.dvdempire.com/Exec/v5_search_item.asp?string='+UrlEncode(MovieName)); end end.